
# microblog.py

Simple and stylish text-to-html microblog generator.

## Requirements

The following python modules are used within the repository.

    toml tomlkit python_dateutil pycurl

* `tomlkit` (optional), for maintaining the configuration file between updates (`check-settings.py`).

Some Gnu core utilities are expected to be present but can be substituted for other means.

* `make` (optional), to invoke the script using Makefiles
* `date` (optional), to generate timestamps when writing posts

## Usage

The following generates a sample page `result.html`.

    cp example/Makefile .
    make

Using `make` is uptional; it does the following within a new directory:

    cp example/settings.toml ./settings.toml
    cp example/timeline.css ./timeline.css
    cp example/default.tpl ./template.tpl
    cp example/demo.txt ./content.txt
    python src/microblog.py ./template.tpl ./content.txt > result.html

This script generate a text file after operation.

* `updatedfiles.txt`, a list of files updated by the script for use in automated uploads.

### Writing Content

See `example/demo.txt`.

The content file is a plain text file of posts. Each post has two types of information: timestamp and message. For example:

    
    Thu Mar 17 11:11:11 PM EDT 2022
    Today I ate ice cream.
    It was strawberry flavored. 
    #TouchingGrass
    
    Thu Mar 16 2:22:22 PM EDT 2022
    I took these pictures.
    /images/1.jpg /images/2.jpg /images/3.jpg
    
    

* the first line of the file must be empty (newline character only).
* the two last lines of the file must be empty
* html can be placed in the message for embedded videos and rich text

## Configuration

Settings are read from `settings.toml`. See `example/settings.toml`.

Configuration options as understood by the script are tentative and may change in the future.

### A key may be missing from your settings file (KeyError)

>I'm getting KeyError when I run the program

>This script is throwing KeyError after I ran git pull

In most cases, this means I added new configuration options. You can resolve this error by adding missing keys from `example/settings.toml` to `settings.toml`.

The following command can check for missing keys and update if needed.

    python src/check-settings.py

Missing keys if any are initialized to default values from `example/settings.toml`.

## Anything else

This is a script I wrote for personal use. The output can be seen on [https://likho.neocities.org/microblog/index.html](https://likho.neocities.org/microblog/index.html). I figure someone else may want to use it for their own personal websites, so it is published. 

It works for me and my workflow; therefore, it is simple and involves little lines of code. But I am still open to comments, questions, or suggestions.
